package com.lin.wx.pament.component.notify;


import com.alibaba.fastjson2.JSONObject;
import com.lin.wx.pament.component.model.TransactionNotify;

/**
 * @author: linjiang
 * @date: 2024/12/10
 */
public interface NotifyDataService<T extends TransactionNotify> {
    /**
     * 交易常量
     */
    String TRANSACTION = "transaction";

    /**
     * 退款常量
     */
    String REFUND = "refund";

    /**
     * 通知消息的前置处理
     *
     * @param body 通知报文
     * @return
     */
    T breforeNotify(String body);

    /**
     * 通知消息的后置处理
     *
     * @param data
     * @return
     */
    JSONObject afterNotify(T data);


    /**
     * 支付产品（如：微信，支付）
     *
     * @param support
     * @return
     */
    Boolean support(String support);
}
